package com.example.demo.shuatiban.zuocheng;

/**
 * @author xujm
 * @version V2.4
 * @Desciotion:  给定一段绳子，长度为5， 在一个坐标轴上一次坐落点， 1,3,4,7,13,16,17 存放在数组中。问该绳子最多能覆盖多少个点
 * @since 2.4.0 2022/1/31 10:06
 */
public class Arr_绳子覆盖最多的点数 {

    /**
     * 滑动窗口解法 - 双指针 O(N)
     * @param arr
     * @return
     */
    public static int cover(int [] arr){

        int i = 0;
        int j = 0;
        int count = 0;
        while(i <=j && i<arr.length && j < arr.length){
            if(arr[j] - arr[i] <=5){
                count = Math.max(count, j-i+1);
                j++;
            }else{
                i++;
            }
        }

        return count;
    }


    public static void main(String[] args) {

        int [] arr = {1,3,4,6,13,16,17};
        int count = cover(arr);
        System.out.println(count);
    }

}
